package org.yzhzc.system.domain.question.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import org.yzhzc.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

@EqualsAndHashCode(callSuper = true)
@Data
@TableName("tb_question")  // 映射到数据库表 tb_question
public class Question extends BaseEntity {

    @TableId(value = "question_id", type = IdType.ASSIGN_ID)  // 主键，使用分布式 ID
    private Long questionId;  // 题目ID

    @NotBlank(message = "题目标题不能为空")
    private String title;  // 题目标题

    @NotNull(message = "题目难度不能为空")
    private Integer difficulty;  // 题目难度，1:简单 2:中等 3:困难

    @NotNull(message = "时间限制不能为空")
    private Long timeLimit;  // 时间限制，单位毫秒

    @NotNull(message = "空间限制不能为空")
    private Long spaceLimit;  // 空间限制，单位KB

    @NotBlank(message = "题目内容不能为空")
    private String content;  // 题目内容

    private String questionCase;  // 题目用例，可为空

    @NotBlank(message = "默认代码不能为空")
    private String defaultCode;  // 默认代码块

    @NotBlank(message = "main函数不能为空")
    private String mainFuc;  // main函数内容
}